/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import model.Aluno;
import model.Curso;
import model.Professor;
import model.Usuario;
import view.*;

/**
 *
 * @author aluno
 */
public class GerenciadorTelas {

    static Login log;
    static GerenciadorLogin gLog;
    static Matricula mat;
    static GerenciadorMatricula gMat;
    static Concluido con;
    static NovoCurso nc;
    static GerenciadorCurso gCurso;
    static AddProfessor addP;
    static GerenciadorProfessor gProf;
    static NovoUsuario nUser;
    static GerenciadorUser gUser;
    static EditUser altSenha;
  
    public static void main(String[] args) {
        //instanciar telas
        log = new Login();
        gLog = new GerenciadorLogin();
        mat = new Matricula();
        gMat = new GerenciadorMatricula();
        con = new Concluido();
        nc = new NovoCurso();
        gCurso = new GerenciadorCurso();
        addP = new AddProfessor();
        gProf = new GerenciadorProfessor();
        nUser = new NovoUsuario();
        gUser = new GerenciadorUser();
        altSenha = new EditUser();


        log.setVisible(true);
    }

    public static void conc() {
        con.setVisible(false);
    }

    public static boolean validarLogin(Usuario usr) {
        boolean validade = false;
        if (usr.login.equals("") && usr.senha.equals("")) {
            return validade;
        } else {
            validade = gLog.validarUsr(usr);
        }
        if (validade) {
            log.setVisible(false);
            Principal princ = new Principal();
            princ.setVisible(true);
        }
        return validade;

    }

    public static void abrirTelaMatricula() {
        mat.setVisible(true);
    }

    public static void fecharTelaMatricula() {
        mat.setVisible(false);
    }

    public static boolean matricular(Aluno al) {
        boolean retorno = false;
        if (al.nome.equals("") || al.sobrenome.equals("") || al.rg.equals("") || Verificadores.verificaRg(al.rg)==false || al.telefone.equals("") || Verificadores.verificaTelefone(al.telefone)==false||al.dataNasc == null||Verificadores.verificaData(al.dataNasc)==false) {
            retorno = false;
        } else if (gMat.matricular(al)) {
            mat.setVisible(false);
            con.setVisible(true);
            retorno = true;
        }

        return retorno;
    }

    public static void abrirTelaNovoCurso() {
        nc.setVisible(true);
    }

    public static void fecharTelaNovoCurso() {
        nc.setVisible(false);
    }

    public static boolean criarCurso(Curso c) {
        boolean retorno = false;
        if (c.nome.equals("") || c.nVagas == 0 || c.limiteFaltas == 0) {
            retorno = false;
        } else if (gCurso.adicionar(c)) {
            nc.setVisible(false);
            con.setVisible(true);
            retorno = true;
        }

        return retorno;
    }

    public static void abrirTelaAddProfessor() {
        addP.setVisible(true);
    }

    public static void fecharTelaAddProfessor() {
        addP.setVisible(false);
    }

    public static boolean criarProfessor(Professor prof) {
        boolean retorno = false;
        if ((prof.nome.equals("")) || (prof.sobrenome.equals("")) || (prof.rg.equals("")) || (prof.equals(""))) {
            retorno = false;
        } else if (gProf.criar(prof)) {
            addP.setVisible(false);
            con.setVisible(true);
            retorno = true;
        }

        return retorno;
    }

    public static void abrirTelaNovoUsuario() {
        nUser.setVisible(true);
    }

    public static void fecharTelaNovoUsuario() {
        nUser.setVisible(false);
    }

    public static boolean criarUsuario(Usuario usr) {
        boolean retorno = false;
        if (usr.nome.equals("") || usr.sobrenome.equals("") || usr.login.equals("") || usr.senha.equals("")) {
            retorno = false;
        } else if (gUser.criar(usr)) {
            nUser.setVisible(false);
            con.setVisible(true);
            retorno = true;
        }

        return retorno;
    }

    public static void abrirEditUser() {
        altSenha.setVisible(true);
    }

    public static void fecharEditUser() {
        altSenha.setVisible(false);
    }

    public static boolean editUser(String login, String senhaAntiga, String novaSenha, String confNovaSenha) {
        boolean retorno = false;
        if (login.equals("") || senhaAntiga.equals("") || novaSenha.equals("") || confNovaSenha.equals("")) {
            retorno = false;
        } else if (gUser.alterarSenha(login, senhaAntiga, confNovaSenha)) {
            altSenha.setVisible(false);
            con.setVisible(true);
            retorno = true;
        }

        return retorno;
    }

    public static void abrirEditAluno() {
        
    }

    public static void fecharEditAluno() {
        
    }
    public static void editAluno()
    {
        
    }
    public static void abrirEditCurso() {
        
    }

    public static void fecharEditCurso() {
        
    }
    public static void editCurso()
    {
        
    }
    public static void abrirEditProf() {
        
    }

    public static void fecharEditProf() {
        
    }
    public static void editProf()
    {
        
    }
}
